Skip to main content

Registerkarte: Softwaremetriken zur Bestimmung der Lizenz

Eine Metrik ist in diesem Umfeld der "Wert" (Anzahl) der für die Lizenzberechnung relevanten Einheiten. Abhängig vom Produkt kann dies beispielsweise die Größe des Benutzercodes in Bytes oder die Anzahl der Achsen, der E/A-Kanäle oder der Feldbus-Instanzen sein.

Die Registerkarte des Geräteeditors zeigt in einer Baumstruktur die für die Applikation vorliegenden Metriken an. Damit können Sie die aktuell gemessenen Werte einsehen und kontrollieren, ob nicht mehr Code auf eine Steuerung geladen wird, als die Lizenz erlaubt. Die Lizenz wird pro Steuerung erteilt und befindet sich deshalb auf der Steuerung. Dort erfolgt auch die Lizenzprüfung.

Die Metriken werden während des Downloads auf die Steuerung übertragen. Sie werden aktualisiert, wenn Sie den Befehl Erstellen → Code erzeugen für die aktive Applikation ausführen.

Aktuelle Metriken vom Gerät lesen

Ermittelt und überträgt die Metriken von der Steuerung und zeigt sie unter der Spalte Wert auf Gerät an.

Code erzeugen, um Metriken zu berechnen

Zur Berechnung der Metriken muss der Code erzeugt werden.

Lizenzen anzeigen

Öffnet den Dialog Lizenzen

Der Dialog zeigt die für das Projekt erforderliche Lizenz. Der Befehl Alles im Store öffnen und Dialog schließen öffnet das vorgeschlagene Produkt im CODESYS Store International.

Wenn Sie das Produkt im CODESYS Store North America anzeigen wollen, müssen Sie in den CODESYS-Optionen den Store North America auswählen.

Metrik

Metriktypen pro Applikation

Wert im Projekt

Anzahl der verwendeten Tags im Entwicklungssystem. Der Wert wird während der Codegenerierung (Befehl Erstellen → Code erzeugen ) gemessen.

Details zur Berechnung finden Sie im Abschnitt Berechnung der Werte

Hinweis: Wenn Sie die Übersetzungsinformation der Applikation löschen, werden die Werte auf 0 zurückgesetzt.

Max. erlaubt durch die Lizenz

Erlaubte Maximalwerte pro Applikation gemäß der Lizenz auf der Steuerung

Wert auf Gerät

Tatsächlich gemessener Wert, ausgelesen aus der Steuerung

Hinweis: Um diesen Werte zu ermitteln, muss die Kommunikation funktionieren.

Berechnung der Werte

Metrik

Wertermittlung

Größe des Benutzercodes

Wert in Bytes

Es wird nur vom Anwender programmierter Code (Implementierung) bewertet. Code, der nicht mit dem IEC-Compiler kompiliert wurde, wird nicht bewertet.

Die Anzahl und Größe von Variablen in der Deklaration ist nicht relevant.

Vom Anwender entwickelte IEC-Bibliotheken werden bei der Codegröße bewertet. Standard- und Systembibliotheken und Kommunikationsstacks der CODESYS GmbH werden nicht bewertet.

Task Group Assignment

Für die Konfiguration von IEC-Taskgruppen in der Taskkonfiguration wird in vielen Fällen eine sogenannten „Task Group Assignment“-Lizenz benötigt, wenn die IEC-Tasks auf verschiedenen CPU-Kernen ausgeführt werden.

nein:

Bei folgenden Konfigurationen wird keine Lizenz benötigt:

  • Eine konfigurierte Taskgruppe mit der Eigenschaft

    • Fixed Pinned

    • Fixed Core

    • Sequential Pinnend (nur eine IEC Task!)

  • Mehrere konfigurierte Taskgruppen, die alle auf demselben CPU-Kern laufen

ja:

Bei folgenden Konfigurationen wird eine Lizenz benötigt:

  • Eine konfigurierte Taskgruppe mit der Eigenschaft

    • Free floating

    • Sequential Pinnend (mehrere IEC-Tasks)

  • Mehrere konfigurierte Taskgruppen mit der Eigenschaft

    • Free floating

    • Sequential Pinnend

  • Mehrere konfigurierte Taskgruppen, die alle auf unterschiedlichen CPU-Kernen laufen

Feldbus, E/A-Kanäle

Anzahl der gemappten Kanäle mit Basisdatentyp (BOOL, INT, REAL, ...). Beim Mapping von komplexen Datentypen (STRUCT, ARRAY) wird die Anzahl der Subelemente mit Basisdatentyp gezählt.

Wichtig

Wenn Sie die Option Variablen immer aktualisieren aktiviert haben, werden alle Kanäle bei der Berechnung berücksichtigt, unabhängig davon, ob sie einer konkreten IEC-Variable zugeordnet sind oder nicht.

Instanzen von CANopen, Modbus, PROFIBUS, SAE J1939

Verwendete Feldbusstack-Instanzen dieses Typs

Ein Master/Controller oder ein Slave/Gerät wird als eine Instanz in der Gerätekonfiguration gezählt. Die Geräte, die im Gerätebaum mit diesen Mastern/Slaves verknüpft sind, werden nicht gezählt. Diese werden über die E/A-Kanäle gezählt. Feldbus-Gateways werden ebenfalls als Instanz gezählt (Ausnahme:  CANopen-Gateway).

Für weitere Informationen siehe: Feldbusse - Lizenzierung

Instanzen von EtherCAT, EtherNet/IP, PROFINET

Anzahl der Visualisierungstags

siehe Visualisierung - Lizenzierung

SoftMotion

siehe SoftMotion - Lizenzierung

Kommunikation

siehe Kommunikation - Lizenzierung

Informationen zu den Lizenzpaketen der applikationsbasierten Lizenzen finden Sie im CODESYS Store.

Die Lizenzierung von Feldbussen erfolgt auf Basis der Anzahl der angelegten Instanzen des jeweiligen Feldbustyps. Jede erzeugte Feldbus-Stack‑Instanz wird zu den Softwaremetriken addiert, die zur Bestimmung Ihrer Lizenz benötigt wird.

. Als Instanz gilt:
  • Ein im Gerätebaum angelegter Client (Master, Controller) eines Feldbusses

  • Ein im Gerätebaum angelegter eigenständige remote Server oder lokale Server (Slave, Gerät)

  • Feldbus-Stack‑Instanzen, die programmatisch über die jeweilige Bibliothek erzeugt werden

  • Feldbus‑Gateways, mit Ausnahme von CANopen‑Gateways

. Nicht als Instanz gilt:
  • Alle Server (Slaves) im Gerätebaum, die unter einem Client (Master) konfiguriert sind. Diese werden über die verwendeten E/A‑Kanäle berücksichtigt.

Die Anzahl der Instanzen entspricht somit der Anzahl der tatsächlich verwendeten Feldbus-Stack‑Instanzen eines Typs.

Am Beispiel eines Modbusses wird erklärt, wie die Anzahl der Instanzen ermitteln wird, um die für Sie passende Lizenz ermitteln zu können.

Softwaremetriken_Lizezierung_Feldbusse.png

Im Gerätebaum ergeben sich folgende Instanzen:

(1)

Unterhalb eines Client-Geräts sind zwei Server-Geräte eingefügt.

Der Client wird als Instanz gezählt, die beiden ihm zugewiesenen Server nicht.

In Summe ergeben sich 1 Instanz

(2)

Eine Instanz wird lokal als Server instanziiert. Die Daten können von mehreren Clients abgerufen werden.

Der Server wird als 1 Instanz gezählt.

(3)

Ein TCP-Client, dem remote TCP-Server zugeordnet sind, wird als eine Instanz gezählt. Die eingehängten remote TCP-Server gelten nicht als Instanz und werden daher nicht gezählt.

Der TCP-Client wird als 1 Instanz gezählt.

(4)

Diese lokalen TCP-Server sind jeweils eine Instanz. Deren Daten können von mehreren TCP-Clients abgerufen werden.

In Summe ergeben sich 2 Instanzen.

(5)

Ergebnis: Für diese Beispielkonfiguration werden 5 Instanzen gezählt.

Beispiel 525. Beispiel Deklaration
PROGRAM PLC_PRG
VAR	
   FB_Client_TCP: ModbusFB.ClientTCP;  // = Modbus_Client_TCP  - count license +
   FB_Server_TCP_Local: ModbusFB.ServerTCP;// = Modbus_Server_TCP_Local - count license +
   FB_Server_TCP_Local2: ModbusFB.ServerTCP;// = Modbus_Server_TCP_Local2 - count license +
   FB_Read_Write: ModbusFB.ClientRequestReadWriteMultipleRegisters; // = Modbus-Server Remote 
   FB_Read: ModbusFB.ClientRequestReadHoldingRegisters; // = Modbus-Server Remote
   FB_Write: ModbusFB.ClientRequestWriteMultipleRegisters ; // = Modbus-Server Remote
END_VAR


Die im Beispiel erzeugten Modbus-Instanzen von Server und Client sind programmatisch über die ModbusFB-Bibliothek erzeugt (Deklaration).

Hier sind deklariert:

  • 2 Instanzen eines Servers

  • 1 Instanz eines Clients

Ergebnis: Hier im Beispiel werden 3 Instanzen gezählt.

Kopie_von_gesamte_Instanzen_count.png

Zur Aktualisierung der Anzeige muss das Projekt übersetzt werden: Im Beispiel sind insgesamt 8 Instanzen in der Registerkarte Softwaremetriken zur Bestimmung der Lizenz im Bereich Instanzen von CANopen, Modbus, PROFIBUS,SAE J1939 zu sehen.

Es werden insgesamt 8 Instanzen des Modbus gezählt, es ergibt sich im Beispiel das benötigte Lizenzpaket:

CODESYS Control Standard M